Exercise 13.5: Given the following sketch of a class, write a copy constructor that copies all the members. Your constructor should dynamically allocate a new string (§ 12.1.2, p. 458) and copy the object to which ps points, rather than copying ps itself.
如下面這樣的類別定義,試著針對它寫出一個拷貝建構器來拷貝它所有的資料成員。這個拷貝建構器應該要能動態配置出一個新的string(§12.1.2,頁458)以拷貝ps指標指向的物件,而不是只是拷貝ps而已
class HasPtr {
public:
HasPtr(const std::string &s = std::string()):
ps(new std::string(s)), i(0) { }
private:
std::string *ps;
int i;
};
#include<string>
class HasPtr
{
public:
HasPtr(const std::string& s = std::string()) :
ps(new std::string(s)), i(0) {}
HasPtr(const HasPtr& ) :ps(new std::string(*ps)),i(i){}//拷貝建構器
private:
std::string* ps;
int i;
};
int main() {
HasPtr hp;
HasPtr hp2("守真"),hp1(std::string("阿彌陀佛"));
hp = hp1;
hp1 = hp2;
}
https://play.google.com/books/reader?id=J1HMLyxqJfgC&pg=GBS.PT923
https://drive.google.com/open?id=1Zg0rM8B-4fOIyuqgAnFzJrJyuNaDrSPv
C++自修入門實境秀 529 重新譯撰 《C++ Primer 5th》
13.1.2. The Copy-Assignment Operator
全部:http://bit.ly/2NoA2ID 原檔下載:http://bit.ly/2Ixe2Vc
課文: http://bit.ly/2FIHV57
http://bit.ly/2mttmfa(第二篇)
第10-11章: http://bit.ly/2MuPmiZ
章12: http://bit.ly/2Rw53sH
重譯12章:http://bit.ly/2V8UgZ7
http://bit.ly/2G2fPSg (docx)
重譯11章:http://bit.ly/39P7HRU
第三篇:http://bit.ly/2UaFbDY
第三篇13章:http://bit.ly/33mh49y
講義下載:
http://bit.ly/2khF8Ic (全部)
程式碼:
https://github.com/oscarsun72/prog1
緣起:http://bit.ly/2XwHOUH